home *** CD-ROM | disk | FTP | other *** search
/ Apple WWDC 1996 / WWDC96_1996 (CD).toast / Technology Materials / MacOS 8 Resources / Developer Tools / Mac OS 8 Interfaces & Libraries / Interfaces / IDLIncludes / Video.idl < prev    next >
Text File  |  1996-05-01  |  10KB  |  234 lines

  1. /*
  2.      File:        Video.idl
  3.  
  4.      Contains:    Video Driver Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.0d3 on Copland DR1
  8.  
  9.      Copyright:    © 1984-1996 by Apple Computer, Inc.  All rights reserved.
  10.  
  11.      Bugs?:        If you find a problem with this file, send the file and version
  12.                  information (from above) and the problem description to:
  13.  
  14.                      Internet:    apple.bugs@applelink.apple.com
  15.                      AppleLink:    APPLE.BUGS
  16.  
  17. */
  18. #ifndef __VIDEO_IDL__
  19. #define __VIDEO_IDL__
  20.  
  21. #include <somobj.idl>
  22. #include <somcls.idl>
  23.  
  24. #ifndef __QUICKDRAW_IDL__
  25. #include <Quickdraw.idl>
  26. #endif
  27.  
  28. #ifdef __SOMIDL__
  29.  
  30. /* csTimingFormat values in VDTimingInfo */
  31. /* look in the declaration rom for timing info */
  32. /*
  33.  Timing mode constants for Display Manager MultiMode support
  34.     Corresponding    .h equates are in Video.h
  35.                     .a equates are in Video.a
  36.                     .r equates are in DepVideoEqu.r
  37.     
  38.     The first enum is the old names (for compatibility).
  39.     The second enum is the new names.
  40. */
  41. /* csConnectFlags values in VDDisplayConnectInfo */
  42. /* csDisplayType values in VDDisplayConnectInfo */
  43. /* csTimingFlags values in VDTimingInfoRec */
  44. /* csResolutionFlags bit flags for VDResolutionInfoRec */
  45. /* Bit definitions for the Get/Set Sync call*/
  46. /* Bit definitions for the Get/Set Convolution call*/
  47. typedef SOMLargeStruct            VPBlock;                    /* Derived from a struct of 42 bytes in size */
  48.  
  49. typedef OpaquePtr                VPBlockPtr;                    /* Substituted OpaquePtr for ``VPBlock*'' */
  50.  
  51. typedef SOMFourByteStruct        VDEntryRecord;                /* Derived from a struct of 4 bytes in size */
  52.  
  53. typedef OpaquePtr                VDEntRecPtr;                /* Substituted OpaquePtr for ``VDEntryRecord*'' */
  54.  
  55. /* Parm block for SetGray control call */
  56. typedef SOMTwoByteStruct        VDGrayRecord;                /* Derived from a struct of 2 bytes in size */
  57.  
  58. typedef OpaquePtr                VDGrayPtr;                    /* Substituted OpaquePtr for ``VDGrayRecord*'' */
  59.  
  60. /* Parm block for SetInterrupt call */
  61. typedef SOMTwoByteStruct        VDFlagRecord;                /* Derived from a struct of 2 bytes in size */
  62.  
  63. typedef OpaquePtr                VDFlagRecPtr;                /* Substituted OpaquePtr for ``VDFlagRecord*'' */
  64.  
  65. /* Parm block for SetEntries control call */
  66. typedef SOMLargeStruct            VDSetEntryRecord;            /* Derived from a struct of 8 bytes in size */
  67.  
  68. typedef OpaquePtr                VDSetEntryPtr;                /* Substituted OpaquePtr for ``VDSetEntryRecord*'' */
  69.  
  70. /* Parm block for SetGamma control call */
  71. typedef SOMFourByteStruct        VDGammaRecord;                /* Derived from a struct of 4 bytes in size */
  72.  
  73. typedef OpaquePtr                VDGamRecPtr;                /* Substituted OpaquePtr for ``VDGammaRecord*'' */
  74.  
  75. typedef SOMLargeStruct            VDBaseAddressInfoRec;        /* Derived from a struct of 14 bytes in size */
  76.  
  77. typedef OpaquePtr                VDBaseAddressInfoPtr;        /* Substituted OpaquePtr for ``VDBaseAddressInfoRec*'' */
  78.  
  79. typedef SOMLargeStruct            VDSwitchInfoRec;            /* Derived from a struct of 16 bytes in size */
  80.  
  81. typedef OpaquePtr                VDSwitchInfoPtr;            /* Substituted OpaquePtr for ``VDSwitchInfoRec*'' */
  82.  
  83. typedef SOMLargeStruct            VDTimingInfoRec;            /* Derived from a struct of 20 bytes in size */
  84.  
  85. typedef OpaquePtr                VDTimingInfoPtr;            /* Substituted OpaquePtr for ``VDTimingInfoRec*'' */
  86.  
  87. typedef SOMLargeStruct            VDDisplayConnectInfoRec;    /* Derived from a struct of 16 bytes in size */
  88.  
  89. typedef OpaquePtr                VDDisplayConnectInfoPtr;    /* Substituted OpaquePtr for ``VDDisplayConnectInfoRec*'' */
  90.  
  91. /*
  92.  RawSenseCode
  93.     This abstract data type is not exactly abstract.  Rather, it is merely enumerated constants
  94.     for the possible raw sense code values when 'standard' sense code hardware is implemented.
  95.  
  96.     For 'standard' sense code hardware, the raw sense is obtained as follows:
  97.         * Instruct the frame buffer controller NOT to actively drive any of the monitor sense lines
  98.         * Read the state of the monitor sense lines 2, 1, and 0.  (2 is the MSB, 0 the LSB)
  99.  
  100.     IMPORTANT Note: 
  101.     When the 'kTaggingInfoNonStandard' bit of 'csConnectFlags' is FALSE, then these constants 
  102.     are valid 'csConnectTaggedType' values in 'VDDisplayConnectInfo' 
  103.  
  104. */
  105. typedef octet                    RawSenseCode;                /* Substituted octet for unsigned char type */
  106.  
  107. /*
  108.  ExtendedSenseCode
  109.     This abstract data type is not exactly abstract.  Rather, it is merely enumerated constants
  110.     for the values which are possible when the extended sense algorithm is applied to hardware
  111.     which implements 'standard' sense code hardware.
  112.  
  113.      For 'standard' sense code hardware, the extended sense code algorithm is as follows:
  114.     (Note:  as described here, sense line 'A' corresponds to '2', 'B' to '1', and 'C' to '0')
  115.         * Drive sense line 'A' low and read the values of 'B' and 'C'.  
  116.         * Drive sense line 'B' low and read the values of 'A' and 'C'.
  117.         * Drive sense line 'C' low and read the values of 'A' and 'B'.
  118.  
  119.     In this way, a six-bit number of the form BC/AC/AB is generated. 
  120.  
  121.     IMPORTANT Note: 
  122.     When the 'kTaggingInfoNonStandard' bit of 'csConnectFlags' is FALSE, then these constants 
  123.     are valid 'csConnectTaggedData' values in 'VDDisplayConnectInfo' 
  124.  
  125. */
  126. typedef octet                    ExtendedSenseCode;            /* Substituted octet for unsigned char type */
  127.  
  128. /*
  129.  DepthMode
  130.     This abstract data type is used to to reference RELATIVE pixel depths.
  131.     Its definition is largely derived from its past usage, analogous to 'xxxVidMode'
  132.  
  133.     Bits per pixel DOES NOT directly map to 'DepthMode'  For example, on some
  134.     graphics hardware, 'kDepthMode1' may represent 1 BPP, whereas on other
  135.     hardware, 'kDepthMode1' may represent 8BPP.
  136.  
  137.     DepthMode IS considered to be ordinal, i.e., operations such as <, >, ==, etc.
  138.     behave as expected.  The values of the constants which comprise the set are such
  139.     that 'kDepthMode4 < kDepthMode6' behaves as expected.
  140. */
  141. typedef unsigned short            DepthMode;
  142.  
  143. typedef SOMLargeStruct            VDPageInfo;                    /* Derived from a struct of 12 bytes in size */
  144.  
  145. typedef OpaquePtr                VDPgInfoPtr;                /* Substituted OpaquePtr for ``VDPageInfo*'' */
  146.  
  147. typedef SOMLargeStruct            VDSizeInfo;                    /* Derived from a struct of 8 bytes in size */
  148.  
  149. typedef OpaquePtr                VDSzInfoPtr;                /* Substituted OpaquePtr for ``VDSizeInfo*'' */
  150.  
  151. typedef SOMLargeStruct            VDSettings;                    /* Derived from a struct of 38 bytes in size */
  152.  
  153. typedef OpaquePtr                VDSettingsPtr;                /* Substituted OpaquePtr for ``VDSettings*'' */
  154.  
  155. typedef SOMTwoByteStruct        VDDefMode;                    /* Derived from a struct of 2 bytes in size */
  156.  
  157. typedef OpaquePtr                VDDefModePtr;                /* Substituted OpaquePtr for ``VDDefMode*'' */
  158.  
  159. typedef SOMTwoByteStruct        VDSyncInfoRec;                /* Derived from a struct of 2 bytes in size */
  160.  
  161. typedef OpaquePtr                VDSyncInfoPtr;                /* Substituted OpaquePtr for ``VDSyncInfoRec*'' */
  162.  
  163. typedef unsigned long            DisplayModeID;
  164.  
  165. typedef unsigned long            VideoDeviceType;
  166.  
  167. typedef unsigned long            GammaTableID;
  168.  
  169. /* Constants for the GetNextResolution call */
  170. /* Constants for the GetGammaInfoList call */
  171. typedef SOMLargeStruct            VDResolutionInfoRec;        /* Derived from a struct of 30 bytes in size */
  172.  
  173. typedef OpaquePtr                VDResolutionInfoPtr;        /* Substituted OpaquePtr for ``VDResolutionInfoRec*'' */
  174.  
  175. typedef SOMLargeStruct            VDVideoParametersInfoRec;    /* Derived from a struct of 22 bytes in size */
  176.  
  177. typedef OpaquePtr                VDVideoParametersInfoPtr;    /* Substituted OpaquePtr for ``VDVideoParametersInfoRec*'' */
  178.  
  179. typedef SOMLargeStruct            VDGammaInfoRec;                /* Derived from a struct of 16 bytes in size */
  180.  
  181. typedef OpaquePtr                VDGammaInfoPtr;                /* Substituted OpaquePtr for ``VDGammaInfoRec*'' */
  182.  
  183. typedef SOMLargeStruct            VDGetGammaListRec;            /* Derived from a struct of 16 bytes in size */
  184.  
  185. typedef OpaquePtr                VDGetGammaListPtr;            /* Substituted OpaquePtr for ``VDGetGammaListRec*'' */
  186.  
  187. typedef SOMLargeStruct            VDRetrieveGammaRec;            /* Derived from a struct of 8 bytes in size */
  188.  
  189. typedef OpaquePtr                VDRetrieveGammaPtr;            /* Substituted OpaquePtr for ``VDRetrieveGammaRec*'' */
  190.  
  191. typedef SOMLargeStruct            VDSetHardwareCursorRec;        /* Derived from a struct of 12 bytes in size */
  192.  
  193. typedef OpaquePtr                VDSetHardwareCursorPtr;        /* Substituted OpaquePtr for ``VDSetHardwareCursorRec*'' */
  194.  
  195. typedef SOMLargeStruct            VDDrawHardwareCursorRec;    /* Derived from a struct of 20 bytes in size */
  196.  
  197. typedef OpaquePtr                VDDrawHardwareCursorPtr;    /* Substituted OpaquePtr for ``VDDrawHardwareCursorRec*'' */
  198.  
  199. typedef SOMLargeStruct            VDSupportsHardwareCursorRec; /* Derived from a struct of 12 bytes in size */
  200.  
  201. typedef OpaquePtr                VDSupportsHardwareCursorPtr; /* Substituted OpaquePtr for ``VDSupportsHardwareCursorRec*'' */
  202.  
  203. typedef SOMLargeStruct            VDHardwareCursorDrawStateRec; /* Derived from a struct of 24 bytes in size */
  204.  
  205. typedef OpaquePtr                VDHardwareCursorDrawStatePtr; /* Substituted OpaquePtr for ``VDHardwareCursorDrawStateRec*'' */
  206.  
  207. typedef SOMLargeStruct            VDConvolutionInfoRec;        /* Derived from a struct of 18 bytes in size */
  208.  
  209. typedef OpaquePtr                VDConvolutionInfoPtr;        /* Substituted OpaquePtr for ``VDConvolutionInfoRec*'' */
  210.  
  211. typedef SOMLargeStruct            VDPowerStateRec;            /* Derived from a struct of 16 bytes in size */
  212.  
  213. typedef OpaquePtr                VDPowerStatePtr;            /* Substituted OpaquePtr for ``VDPowerStateRec*'' */
  214.  
  215. /*
  216.     Private Data to video drivers.
  217.     
  218.     In versions of MacOS with multiple address spaces (System 8), the OS 
  219.     must know the extent of parameters in order to move them between the caller
  220.     and driver.  The old private-selector model for video drivers does not have
  221.     this information so:
  222.     
  223.     For post-7.x Systems private calls should be implemented using the cscPrivateCall
  224. */
  225. typedef SOMLargeStruct            VDPrivateSelectorDataRec;    /* Derived from a struct of 16 bytes in size */
  226.  
  227. typedef SOMLargeStruct            VDPrivateSelectorRec;        /* Derived from a struct of 20 bytes in size */
  228.  
  229.  
  230. #endif /* __SOMIDL__ */
  231.  
  232. #endif /* __VIDEO_IDL__ */
  233.  
  234.